package cn.hss.array;

import java.util.Arrays;

/**数组扩容和缩容
 * @author 作者：HeShaoShuai
 * @Email 邮箱：2569819541@qq.com
 * @Date 日期：2023/4/25 16:08
 * @Package 包名：cn.hss.array
 * @Project 项目名：JavaSE
 * @Version 1.0
 */
public class ArrayDemo3 {
	public static void main(String[] args) {
		kuoRong();
	}
	//扩容
	public static void kuoRong(){
		int[] arr=new int[]{1,2,3,4,5};
		//定义扩容后的数组   >>  <<
		//<< 表示左移，不分正负数，低位补0
		//n=8<<3;将8左移3位。就是8乘以2的3次方
		//>> 表示右移 若为正数，则高位补0；反之，则高位补1
		//a>>b,表示a右移b位，就是a除以2的b次方
//        int[] newArr=new int[arr.length * 2];
		int[] newArr=new int[arr.length << 1];
		for (int i=0;i<arr.length;i++){
			newArr[i]=arr[i];
		}

		//为数组赋值
		newArr[arr.length]=10;
		newArr[arr.length+1]=20;
		newArr[arr.length+2]=30;
		System.out.println("新数组的元素："+
				Arrays.toString(newArr));
		//arr=newArr;
		//数组的缩容
		//Arrays.copyOf(目标数组，截取下标)，截取指定长度的指定数组，
		// 返回新数组
		arr=Arrays.copyOf(newArr,newArr.length-2);
		System.out.println("arr数组的元素："+
				Arrays.toString(arr));
	}
}
